/// @tags: OGF
#include <cctype>
#include <cstdio>

namespace BlueQuantum {

int const N = 100;

template <typename T>
inline T &read(T &x) {
  x = 0;
  bool f = false;
  short ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = true;
    ch = getchar();
  }
  while (isdigit(ch)) x = x * 10 + (ch ^ '0'), ch = getchar();
  if (f) x = -x;
  return x;
}

int n;

inline int main() {
  read(n);
  printf("%.12f", 1.0 * n * (n + 1) / (2.0 * (2.0 * n - 1)));
  return 0;
}

}  // namespace BlueQuantum

int main() {
#ifndef ONLINE_JUDGE
#ifdef LOCAL
  freopen("/tmp/CodeTmp/testdata.in", "r", stdin);
  freopen("/tmp/CodeTmp/testdata.out", "w", stdout);
#else
  freopen("P3978 [TJOI2015]概率论.in", "r", stdin);
  freopen("P3978 [TJOI2015]概率论.out", "w", stdout);
#endif
#endif

  return BlueQuantum::main();
}